<?php
declare (strict_types = 1);

namespace app\adminapi\controller;

use think\Exception;
use think\exception\HttpException;
use think\facade\Db;
use think\Request;

class Brand
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        try{
            $name = \request()->get('name');
            # 默认第一页、查询10条
            $limit = \request()->get('limit',10);
            $page = \request()->get('page',1);
            if (!is_numeric($limit) || !is_numeric($page)) {
                abort(2001,'参数错误');# 手动抛出异常
            }
            // when 当品牌名称传递的时候、添加查询条件
            // 关联查询品牌对应分类
            // join方法
//            $data = \app\common\model\Brand::when($name,function ($query) use($name) {
//                $query->where('name','like',$name.'%');
//            })->alias('b')
//                ->join('category c','cate_id=c.id')
//                ->field('b.id,b.name,c.cate_name,c.id')
//                ->paginate([
//                    'list_rows' => $limit,
//                    'page' => $page
//                ]);
//dd($data);
            $data = \app\common\model\Brand::when($name,function ($query) use($name) {
                $query->where('name','like',$name.'%');
            })->with('category')->paginate([
                    'list_rows' => $limit,
                    'page' => $page
                ])->toArray();
            dd($data);
            return  success(['data' => $data]);
        }catch(HttpException $exception){
            return  fail(2002,$exception->getMessage());
        }

    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
        try {
            if (!is_numeric($id)) {
                # 抛出异常
                throw new \Exception("商品id只能是数子");
            }
            $data = \app\adminapi\business\Brand::getInfo($id);
            return  success($data);
        }catch (\Exception $exception) {
            return fail(2001,$exception->getMessage());
        }
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
        try {
            if (!is_numeric($id)) {
                # 抛出异常
                throw new \Exception("品牌id只能是数子");
            }
            $data = \app\adminapi\business\Brand::delete($id);
            return  success($data);
        }catch (\Exception $exception) {
            return fail(2001,$exception->getMessage());
        }
    }
}
